﻿Public Class Informe
    Dim datos As New datos
    Private Sub Informe_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarNacionalidad()
        cargarGenero()

        Dim sql As String = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento"
        DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)

        Dim sql2 As String = "SELECT autor.id_autor, autor.nombre, autor.apellido, nacionalidad.nombre as name_nac FROM nacionalidad INNER JOIN autor ON nacionalidad.id_nacionalidad = autor.id_nacionalidad"
        DataSetAutoresBindingSource.DataSource = datos.ejecutar_sql(sql2)

        Dim sql3 As String = "SELECT cd.codigo_cd, cd.titulo, cd.precio_venta, cd.año_publicacion, genero.nombre as nombre_genero FROM cd INNER JOIN genero ON cd.id_genero = genero.id_genero"
        DataSetCDBindingSource.DataSource = datos.ejecutar_sql(sql3)

        Me.informe_cliente.RefreshReport()
        Me.ReporteAutores.RefreshReport()
        Me.reporte_cd.RefreshReport()
    End Sub

    Private Sub cargarGenero()
        Dim tabla As Data.DataTable = datos.leo_tabla("genero")
        cmb_genero.Items.Clear()
        cmb_genero.DataSource = tabla
        cmb_genero.ValueMember = "id_genero"
        cmb_genero.DisplayMember = "nombre"
        cmb_genero.SelectedIndex = -1
    End Sub

    Private Sub cmb_genero_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_genero.SelectionChangeCommitted
        Dim sql2 As String = "SELECT cd.codigo_cd, cd.titulo, cd.precio_venta, cd.año_publicacion, genero.nombre as nombre_genero FROM cd INNER JOIN genero ON cd.id_genero = genero.id_genero where cd.id_genero = '" & +cmb_genero.SelectedValue & "'"
        DataSetCDBindingSource.DataSource = datos.ejecutar_sql(sql2)
        Me.reporte_cd.RefreshReport()
    End Sub
    Private Sub cargarNacionalidad()
        Dim tabla As Data.DataTable = datos.leo_tabla("nacionalidad")
        cmb_nacionalidad.Items.Clear()
        cmb_nacionalidad.DataSource = tabla
        cmb_nacionalidad.ValueMember = "id_nacionalidad"
        cmb_nacionalidad.DisplayMember = "nombre"
        cmb_nacionalidad.SelectedIndex = -1
    End Sub

    Private Sub cmb_nacionalidad_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_nacionalidad.SelectionChangeCommitted
        Dim sql2 As String = "SELECT autor.id_autor, autor.nombre, autor.apellido,nacionalidad.nombre as name_nac FROM nacionalidad INNER JOIN autor ON nacionalidad.id_nacionalidad = autor.id_nacionalidad where autor.id_nacionalidad = '" & +cmb_nacionalidad.SelectedValue & "'"
        DataSetAutoresBindingSource.DataSource = datos.ejecutar_sql(sql2)
        Me.ReporteAutores.RefreshReport()
    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
            e.KeyChar = ""
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sql As String = ""
        If Not IsDate(MaskedTextBox1.Text) And Not IsDate(MaskedTextBox2.Text) Then
            sql = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento"
            Me.DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)
        Else
            If IsDate(MaskedTextBox1.Text) And Not IsDate(MaskedTextBox2.Text) Then
                sql = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM( cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento)"
                sql &= " where cliente.fecha_nacimiento >= '" & Me.MaskedTextBox1.Text & "'"

                Me.DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)
            Else
                If Not IsDate(MaskedTextBox1.Text) And IsDate(MaskedTextBox2.Text) Then
                    sql = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM( cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento)"
                    sql &= " where cliente.fecha_nacimiento <= '" & Me.MaskedTextBox2.Text & "'"

                    Me.DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)
                Else
                    sql = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM( cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento)"
                    sql &= " where cliente.fecha_nacimiento between '" & Me.MaskedTextBox1.Text
                    sql &= "' and '" & Me.MaskedTextBox2.Text & "'"

                    Me.DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)

                End If
            End If
        End If
        Me.informe_cliente.RefreshReport()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim sql As String = "SELECT cliente.numero_documento,tipo_documento.nombre as nombre_doc, cliente.nombre, cliente.apellido, cliente.fecha_nacimiento, cliente.telefono FROM cliente INNER JOIN tipo_documento ON cliente.id_tipo_documento = tipo_documento.id_tipo_documento"
        DataSetClienteBindingSource.DataSource = datos.ejecutar_sql(sql)
        MaskedTextBox1.Clear()
        MaskedTextBox2.Clear()
        Me.informe_cliente.RefreshReport()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim sql2 As String = "SELECT autor.id_autor, autor.nombre, autor.apellido, nacionalidad.nombre as name_nac FROM nacionalidad INNER JOIN autor ON nacionalidad.id_nacionalidad = autor.id_nacionalidad"
        DataSetAutoresBindingSource.DataSource = datos.ejecutar_sql(sql2)
        cmb_nacionalidad.SelectedIndex = -1
        Me.ReporteAutores.RefreshReport()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim sql3 As String = "SELECT cd.codigo_cd, cd.titulo, cd.precio_venta, cd.año_publicacion, genero.nombre as nombre_genero FROM cd INNER JOIN genero ON cd.id_genero = genero.id_genero"
        DataSetCDBindingSource.DataSource = datos.ejecutar_sql(sql3)
        cmb_genero.SelectedIndex = -1
        Me.reporte_cd.RefreshReport()
    End Sub
End Class